import request from './request'

// 博客文章相关API
export const blogApi = {
  // 获取文章列表
  getArticles(params = {}) {
    return request({
      url: '/articles',
      method: 'get',
      params: {
        page: 1,
        pageSize: 10,
        ...params
      }
    })
  },

  // 根据分类获取文章列表
  getArticlesByCategory(category, params = {}) {
    return request({
      url: '/articles',
      method: 'get',
      params: {
        category,
        page: 1,
        pageSize: 10,
        ...params
      }
    })
  },

  // 根据标签获取文章列表
  getArticlesByTag(tag, params = {}) {
    return request({
      url: '/articles',
      method: 'get',
      params: {
        tag,
        page: 1,
        pageSize: 10,
        ...params
      }
    })
  },

  // 获取最新文章
  getLatestArticles(limit = 10) {
    return request({
      url: '/articles',
      method: 'get',
      params: {
        limit,
        sort: 'date',
        order: 'desc'
      }
    })
  },

  // 获取文章详情
  getArticleDetail(id) {
    return request({
      url: `/articles/${id}`,
      method: 'get'
    })
  },

  // 搜索文章
  searchArticles(keyword, params = {}) {
    return request({
      url: '/articles/search',
      method: 'get',
      params: {
        keyword,
        page: 1,
        pageSize: 10,
        ...params
      }
    })
  }
}

// 分类相关API
export const categoryApi = {
  // 获取所有分类
  getCategories() {
    return request({
      url: '/categories',
      method: 'get'
    })
  },

  // 获取分类详情（包含文章数量）
  getCategoryDetail(name) {
    return request({
      url: `/categories/${name}`,
      method: 'get'
    })
  }
}

// 标签相关API
export const tagApi = {
  // 获取所有标签
  getTags() {
    return request({
      url: '/tags',
      method: 'get'
    })
  },

  // 获取标签详情（包含文章数量）
  getTagDetail(name) {
    return request({
      url: `/tags/${name}`,
      method: 'get'
    })
  },

  // 获取热门标签
  getPopularTags(limit = 10) {
    return request({
      url: '/tags/hot',
      method: 'get',
      params: { limit }
    })
  }
}

// 设置相关API
export const settingsApi = {
  // 获取网站设置信息
  getSiteSettings() {
    return request({
      url: '/settings/system',
      method: 'get'
    })
  },

  // 获取个人信息
  getPersonalInfo() {
    return request({
      url: '/personal-info',
      method: 'get'
    })
  },

  // 获取备案信息
  getRecordInfo() {
    return request({
      url: '/record-info',
      method: 'get'
    })
  }
}

// 统计相关API
export const statsApi = {
  // 获取网站统计信息
  getSiteStats() {
    return request({
      url: '/dashboard/stats',
      method: 'get'
    })
  },

  // 获取文章统计信息
  getArticleStats() {
    return request({
      url: '/dashboard/chart',
      method: 'get'
    })
  }
}

// 导出默认的API对象，包含所有API方法
export default {
  blog: blogApi,
  category: categoryApi,
  tag: tagApi,
  settings: settingsApi,
  stats: statsApi
}